#!/usr/bin/env python

from Bio import GenBank, Seq
from Bio.Seq import Seq,translate

# We can create a GenBank object that will parse a raw record
# This facilitates extracting specific information from the sequences
record_parser = GenBank.FeatureParser()

# NCBIDictionary is an interface to Genbank
ncbi_dict = GenBank.NCBIDictionary('nucleotide', 'genbank', parser = record_parser)

# If you pass NCBIDictionary a GenBank id, it will download that record
parsed_record = ncbi_dict['116496646']

print "GenBank id:", parsed_record.id

# Extract the sequence from the parsed_record
s = parsed_record.seq.tostring()
print "total sequence length:", len(s)

max_repeat = 9

print "method 1"
for i in range(max_repeat):
    substr = ''.join(['T' for n in range(i+1)])
    print substr, s.count(substr)

print "\nmethod 2"
for i in range(max_repeat):
    substr = ''.join(['T' for n in range(i+1)])
    count = 0
    pos = s.find(substr,0)
    while not pos == -1:
        count = count + 1
        pos = s.find(substr,pos+1)
    print substr, count

#translate sequence ==> protein, searching for start codon

start_site = s.find('ATG') #position of start codon
totrans ='' #compiling string of CDS

counter = start_site
countcodon = 0;
for i in range(len(s)-4-start_site):
    totrans = totrans + s[counter]
    counter = counter + 1
    stoptest = s[counter]+s[counter+1]+s[counter+2]
    if countcodon == 2:
        if stoptest == 'TAA' or stoptest == 'TAG' or stoptest == 'TGA':
            totrans = totrans + s[counter+1] + s[counter+2]
            break
        countcodon = -1
    countcodon = countcodon + 1
        
    
trans = translate(totrans)

print 'protein translation is %s' % trans
 
